Skip to main content

02. 集合与函数

1. 集合的基本概念

1.1 定义与表示

  • 集合 (Set):一个无序的对象集合。集合中的对象称为元素 (element)成员 (member)
  • 集合相等:两个集合 AABB 相等,当且仅当它们拥有完全相同的元素,记为 A=B    x(xAxB)A = B \iff \forall x (x \in A \leftrightarrow x \in B)
  • 集合的表示方法
    • 列举法S={2,3,5,7}S = \{2, 3, 5, 7\}
    • 省略号法A={1,2,3,...,100}A = \{1, 2, 3, ..., 100\}
    • 构造法 (Set builder){xP(x)}\{ x \mid P(x) \},表示所有具有性质 PP 的元素 xx 的集合。

1.2 重要集合

名称符号描述
自然数集N\mathbb{N}{0,1,2,3,...}\{ 0, 1, 2, 3, ... \}
整数集Z\mathbb{Z}{...,2,1,0,1,2,...}\{ ..., -2, -1, 0, 1, 2, ... \}
正整数集Z+\mathbb{Z}^+{1,2,3,...}\{ 1, 2, 3, ... \}
有理数集Q\mathbb{Q}{p/qp,qZ,q0}\{ p/q \mid p, q \in \mathbb{Z}, q \neq 0 \}
实数集R\mathbb{R}
复数集C\mathbb{C}{a+bia,bR}\{ a + bi \mid a, b \in \mathbb{R} \}

1.3 特殊集合与子集

  • 全集 (Universal set): 在特定上下文中,所有讨论对象构成的集合,记为 UU
  • 空集 (Empty set): 不包含任何元素的集合,记为 \emptyset{}\{ \}
    • 常考易混点:空集本身是一个集合,而包含空集的集合不是空集。即 {}\emptyset \neq \{\emptyset\},因为后者包含一个元素:\emptyset
  • 子集 (Subset): 如果集合 AA 的每个元素都是集合 BB 的元素,则称 AABB 的子集,记为 ABA \subseteq B
    • 形式化定义:AB    x(xAxB)A \subseteq B \iff \forall x (x \in A \to x \in B)
  • 真子集 (Proper subset): 如果 AABB 的子集,且 ABA \neq B,则称 AABB 的真子集,记为 ABA \subset B
    • 形式化定义:AB    x(xAxB)x(xBxA)A \subset B \iff \forall x (x \in A \to x \in B) \land \exists x (x \in B \land x \notin A)
  • 重要结论
    • 对于任意集合 SS,都有 S\emptyset \subseteq S
    • 对于任意集合 SS,都有 SSS \subseteq S
    • A=B    (ABBA)A = B \iff (A \subseteq B \land B \subseteq A)

2. 集合运算与恒等式

2.1 基本运算

运算符号定义逻辑关联
并集 (Union)ABA \cup B{xxAxB}\{ x \mid x \in A \lor x \in B \}逻辑或
交集 (Intersection)ABA \cap B{xxAxB}\{ x \mid x \in A \land x \in B \}逻辑与
差集 (Difference)ABA - B{xxAxB}\{ x \mid x \in A \land x \notin B \}¬
补集 (Complement)Aˉ\bar{A}{xUxA}\{ x \in U \mid x \notin A \}逻辑非 ¬
  • 不交集 (Disjoint): 如果两个集合的交集为空集,即 AB=A \cap B = \emptyset,则称它们是不交的或互斥 (disjoint)

2.2 集合恒等式 (Set Identities)

集合恒等式与逻辑等价式有很强的对应关系。

定律名称形式一 (与 \cup 相关)形式二 (与 \cap 相关)
恒等律 (Identity)A=AA \cup \emptyset = AAU=AA \cap U = A
支配律 (Domination)AU=UA \cup U = UA=A \cap \emptyset = \emptyset
幂等律 (Idempotent)AA=AA \cup A = AAA=AA \cap A = A
交换律 (Commutative)AB=BAA \cup B = B \cup AAB=BAA \cap B = B \cap A
结合律 (Associative)(AB)C=A(BC)(A \cup B) \cup C = A \cup (B \cup C)(AB)C=A(BC)(A \cap B) \cap C = A \cap (B \cap C)
分配律 (Distributive)A(BC)=(AB)(AC)A \cup (B \cap C) = (A \cup B) \cap (A \cup C)A(BC)=(AB)(AC)A \cap (B \cup C) = (A \cap B) \cup (A \cap C)
德摩根律 (De Morgan's)AB=AˉBˉ\overline{A \cup B} = \bar{A} \cap \bar{B}AB=AˉBˉ\overline{A \cap B} = \bar{A} \cup \bar{B}
吸收律 (Absorption)A(AB)=AA \cup (A \cap B) = AA(AB)=AA \cap (A \cup B) = A
补集律 (Complement)AAˉ=UA \cup \bar{A} = UAAˉ=A \cap \bar{A} = \emptyset
双重补集律 (Complementation)Aˉˉ=A\bar{\bar{A}} = A
  • 证明方法:证明集合恒等式的主要方法是利用构造法定义和逻辑等价式
  • 用例:证明德摩根律 AB=AˉBˉ\overline{A \cap B} = \bar{A} \cup \bar{B} AB={xx(AB)}补集定义={x¬(xAB)}符号转换={x¬(xAxB)}交集定义={x¬(xA)¬(xB)}逻辑德摩根律={xxAˉxBˉ}补集定义={xx(AˉBˉ)}并集定义=AˉBˉ\begin{align} \overline{A \cap B} & = \{ x \mid x \notin (A \cap B) \} && \text{补集定义} \\ & = \{ x \mid \neg(x \in A \cap B) \} && \text{符号转换} \\ & = \{ x \mid \neg(x \in A \land x \in B) \} && \text{交集定义} \\ & = \{ x \mid \neg(x \in A) \lor \neg(x \in B) \} && \text{逻辑德摩根律} \\ & = \{ x \mid x \in \bar{A} \lor x \in \bar{B} \} && \text{补集定义} \\ & = \{ x \mid x \in (\bar{A} \cup \bar{B}) \} && \text{并集定义} \\ & = \bar{A} \cup \bar{B} \end{align}

3. 集合的基数、笛卡尔积与幂集

  • 基数 (Cardinality): 有限集合 SS 的基数是其元素的个数,记为 S|S|

    • =0| \emptyset | = 0
  • 容斥原理 (Inclusion-Exclusion Principle): 对于两个有限集合 A,BA, B

    AB=A+BAB|\boldsymbol{A \cup B}| = |\boldsymbol{A}| + |\boldsymbol{B}| - |\boldsymbol{A \cap B}|

    解释:直接将 A|A|B|B| 相加时,ABA \cap B 中的元素被计算了两次,因此需要减去一次。

  • n 元组 (n-tuple): 一个有序的元素集合 (a1,a2,...,an)(a_1, a_2, ..., a_n)顺序很重要

  • 笛卡尔积 (Cartesian Product): 集合 AABB 的笛卡尔积 A×BA \times B 是所有有序对 (a,b)(a, b) 的集合,其中 aA,bBa \in A, b \in B

    • A×B={(a,b)aAbB}A \times B = \{ (a, b) \mid a \in A \land b \in B \}
    • 重要性质:
      • 笛卡尔积不满足交换律,即 A×BB×AA \times B \neq B \times A (除非 A=BA=BA=A=\emptysetB=B=\emptyset)。
      • 基数性质:A×B=A×B|A \times B| = |A| \times |B|
  • 幂集 (Power Set): 集合 SS 的幂集是 SS所有子集构成的集合,记为 P(S)\mathcal{P}(S)

    • 循循善诱的例子:
      1. 如果 S=S = \emptyset,它的唯一子集是 \emptyset。所以 P()={}\mathcal{P}(\emptyset) = \{\emptyset\}
      2. 如果 S={1}S = \{1\},它的子集是 \emptyset{1}\{1\}。所以 P({1})={,{1}}\mathcal{P}(\{1\}) = \{\emptyset, \{1\}\}
      3. 如果 S={1,2}S = \{1, 2\},它的子集是 ,{1},{2},{1,2}\emptyset, \{1\}, \{2\}, \{1, 2\}。所以 P({1,2})={,{1},{2},{1,2}}\mathcal{P}(\{1, 2\}) = \{\emptyset, \{1\}, \{2\}, \{1, 2\}\}
    • 重要结论: 如果 S=n|S| = n,那么 P(S)=2n|\mathcal{P}(S)| = 2^n
      • 解释:构造 SS 的一个子集时,对于 SS 中的每一个元素,我们都有两种选择:“放入子集”或“不放入子集”。nn 个元素,每个都有 2 种选择,根据乘法法则,总共有 2n2^n 种组合,即 2n2^n 个不同的子集。

4. 函数 (Functions)

4.1 基本概念

  • 函数 (Function): 一个从集合 AA 到集合 BB 的函数 f:ABf: A \to B 是一个规则,它为 AA 中的每一个元素,都指定了 BB唯一一个对应的元素。
  • 相关术语:
    • 定义域 (Domain): 集合 AA
    • 陪域 (Codomain): 集合 BB
    • 像 (Image): 如果 f(a)=bf(a) = b,则 bbaa 的像。
    • 原像 (Preimage): 如果 f(a)=bf(a) = b,则 aabb 的一个原像。
    • 值域 (Range): 定义域中所有元素的像构成的集合,记为 f(A)f(A)。值域是陪域的一个子集,即 f(A)Bf(A) \subseteq B

4.2 函数的类型 (重点)

类型中文名定义直观理解
Injective单射 (one-to-one)x,yA,(f(x)=f(y)x=y)\forall x, y \in A, (f(x) = f(y) \to x = y)不同的输入必有不同的输出。没有“多对一”。
Surjective满射 (onto)bB,aA,f(a)=b\forall b \in B, \exists a \in A, f(a) = b陪域中的每个元素都被“击中”了。值域等于陪域。
Bijective双射 (one-to-one correspondence)既是单射又是满射建立了一个完美的“一一对应”关系。
  • 用例与判断:

    • f:ZZ,f(x)=x2f: \mathbb{Z} \to \mathbb{Z}, f(x) = x^2
      • 非单射:因为 f(1)=f(1)=1f(1) = f(-1) = 1,但 111 \neq -1
      • 非满射:因为陪域中没有一个整数的平方等于 1-1
    • g:ZZ,g(x)=2xg: \mathbb{Z} \to \mathbb{Z}, g(x) = 2x
      • 是单射:若 2x=2y2x = 2y,则 x=yx=y
      • 非满射:陪域中的奇数(如 3)没有原像。
    • h:RR,h(x)=2x1h: \mathbb{R} \to \mathbb{R}, h(x) = 2x-1
      • 是单射:若 2x1=2y12x-1 = 2y-1,则 x=yx=y
      • 是满射:对于任意实数 yy,总能找到 x=(y+1)/2x = (y+1)/2 作为其原像。
      • 结论hh 是一个双射
  • 重要定理:

    • 对于从有限集 AA有限集 BB 的函数 ff,如果 A=B|\boldsymbol{A}| = |\boldsymbol{B}|,那么:
    • ff单射     \iff ff满射
    • 注意:此定理对无限集不成立。例如,g:Z+Z+,g(x)=2xg: \mathbb{Z}^+ \to \mathbb{Z}^+, g(x) = 2x 是单射但不是满射。

5. 函数的运算与特殊函数

5.1 逆函数与复合函数

  • 逆函数 (Inverse Function):

    • 核心条件: 一个函数 f:ABf: A \to B 可逆 (invertible) 当且仅当它是一个双射 (bijection)
    • 逆函数记为 f1:BAf^{-1}: B \to A,定义为 f1(b)=a    f(a)=bf^{-1}(b) = a \iff f(a) = b
    • 为什么必须是双射?
      • 如果不是单射(多对一),那么一个 BB 中的元素会对应多个 AA 中的原像,其逆不满足函数的“唯一”性定义。
      • 如果不是满射,那么 BB 中会有元素在 AA 中没有对应原像,其逆不满足函数的“每一个”定义域元素都有指定。
  • 复合函数 (Composition of Functions):

    • g:ABg: A \to Bf:BCf: B \to C,则 ffgg 的复合函数记为 fgf \circ g,定义为 (fg)(x)=f(g(x))(f \circ g)(x) = f(g(x))
    • 注意:函数复合的顺序是从右到左。
    • 重要性质: 复合运算不满足交换律,即 fggff \circ g \neq g \circ f

5.2 常用函数

  • 向下取整 (Floor Function): x\lfloor x \rfloor,表示不大于 xx 的最大整数。
  • 向上取整 (Ceiling Function): x\lceil x \rceil,表示不小于 xx 的最小整数。
  • 阶乘 (Factorial Function): n!=n×(n1)××2×1n! = n \times (n-1) \times \dots \times 2 \times 1。约定 0!=10! = 1

6. 数列与求和

  • 数列 (Sequence): 一个从整数子集(通常是 N\mathbb{N}Z+\mathbb{Z}^+)到某个集合 SS 的函数。

  • 等差数列 (Arithmetic Progression): 通项为 an=a+nda_n = a + nd

  • 等比数列 (Geometric Progression): 通项为 an=arna_n = ar^n

  • 求和 (Summation):

    • 记号: j=mnaj=am+am+1++an\sum_{j=m}^{n} a_j = a_m + a_{m+1} + \dots + a_n
    • 重要求和公式:
      • 等差数列求和: j=0n(a+jd)=(n+1)a+dn(n+1)2\sum_{j=0}^{n} (a+jd) = (n+1)a + d \frac{n(n+1)}{2}
      • 等比数列求和 (重点): j=0narj=arn+11r1\sum_{j=0}^{n} ar^j = a \frac{r^{n+1}-1}{r-1} (当 r1r \neq 1)
      • 无穷几何级数 (重点): 当 x<1|x| < 1 时, k=0xk=11x\sum_{k=0}^{\infty} x^k = \frac{1}{1-x}

7. 无限集的基数 (难点)

7.1 可数集与不可数集

  • 基数相等: 两个集合 AABB (可以是无限的) 基数相等,记为 A=B|A|=|B|,如果存在一个从 AABB双射函数
  • 可数集 (Countable Set): 一个集合是可数的,如果它是有限的,或者其基数与正整数集 Z+\mathbb{Z}^+ 相同。
    • 直观理解: 可数集中的所有元素都可以被一一列出,形成一个(可能是无限的)列表。
  • 不可数集 (Uncountable Set): 不是可数集的集合。
  • 重要结论:
    • 整数集 Z\mathbb{Z} 是可数的。
    • 有理数集 Q\mathbb{Q} 是可数的。
    • 任何有限字母表上的所有有限长度字符串的集合是可数的(因此所有 Java 程序的集合也是可数的)。

7.2 康托对角线论证 (Cantor's Diagonal Argument)

这是一个证明某个集合是不可数的经典方法。

  • 定理: 实数集 R\mathbb{R} 是不可数的。

  • 证明思路 (以区间 [0,1][0, 1] 为例):

    1. 反证法假设: 假设 [0,1][0, 1] 内的实数是可数的。这意味着我们可以将它们全部列在一个列表中: r1=0.d11d12d13...r2=0.d21d22d23...r3=0.d31d32d33......r_1 = 0.d_{11}d_{12}d_{13}... \\ r_2 = 0.d_{21}d_{22}d_{23}... \\ r_3 = 0.d_{31}d_{32}d_{33}... \\ ...
    2. 构造一个新数: 我们构造一个新的实数 r=0.d1d2d3...r = 0.d_1d_2d_3...,其构造规则如下:
      • 对于第 ii 位小数 did_i,我们让它不等于列表中第 ii 个数字的第 ii 位小数 diid_{ii}。例如,可以取 di=(dii+1)(mod10)d_i = (d_{ii} + 1) \pmod{10}
    3. 导出矛盾:
      • 这个新构造的数 rr 也在 [0,1][0, 1] 区间内。
      • 但是,rr 不可能等于列表中的任何一个数 rir_i,因为它在第 ii 位小数上与 rir_i 不同 (didiid_i \neq d_{ii})。
      • 这与“我们已经列出了所有 [0,1][0, 1] 内的实数”的假设相矛盾。
    4. 结论: 因此,最初的假设是错误的,[0,1][0, 1] 区间(以及整个实数集 R\mathbb{R})是不可数的
  • 另一个应用: 同样可以用对角线论证证明自然数的幂集 P(N)\mathcal{P}(\mathbb{N}) 是不可数的

  • 康托定理 (Cantor's Theorem): 对于任何集合 SS,其幂集的基数严格大于其自身的基数,即 S<P(S)|S| < |\mathcal{P}(S)|